/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import model.bean.*;
import model.daobase.DBase;

/**
 *
 * @author alulab
 */
public class DaoComentario extends DBase {

    public ArrayList<BeanComentario> Comentariolist() {

        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;
        ArrayList<BeanComentario> lista_comentarios = new ArrayList<BeanComentario>();


        try {

            String query = "SELECT c.idcomentario, c.contenido, c.fecha_creacion, c.idusuario, c.idarchivo "
                    + "FROM comentario c "
                    + "INNER JOIN usuario u ON c.idusuario = u.idusuario "
                    + "INNER JOIN archivo a ON c.idarchivo = a.idarchivo ";
//                    + "ORDER BY cu.nombre_curso";

            pstmt = conn.prepareStatement(query);
            res = pstmt.executeQuery();

            BeanComentario comentario;
            while (res.next()) {
                comentario = new BeanComentario();
                comentario.setIdcomentario(res.getInt(1));
                comentario.setContenido(res.getString(2));
                comentario.setFecha_creacion(res.getDate(3));

                BeanUsuario usuario = new BeanUsuario();
                usuario.setIdusuario(res.getInt(4));
                comentario.setUsuario(usuario);

                BeanArchivo archivo = new BeanArchivo();
                archivo.setIdarchivo(res.getInt(5));
                comentario.setArchivo(archivo);

                lista_comentarios.add(comentario);
            }

            res.close();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

        return lista_comentarios;

    }

    public BeanComentario get(int id) {

        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;
        BeanComentario comentario = new BeanComentario();

        try {

            String query = "SELECT c.idcomentario, c.contenido, c.fecha_creacion, c.idusuario, c.idarchivo "
                    + "FROM comentario c "
                    + "INNER JOIN usuario u ON c.idusuario = u.idusuario "
                    + "INNER JOIN archivo a ON c.idarchivo = a.idarchivo "
                    + "WHERE idcomentario=" + id;

            pstmt = conn.prepareStatement(query);
            res = pstmt.executeQuery();

            while (res.next()) {

                comentario.setIdcomentario(res.getInt(1));
                comentario.setContenido(res.getString(2));
                comentario.setFecha_creacion(res.getDate(3));

                BeanUsuario usuario = new BeanUsuario();
                usuario.setIdusuario(res.getInt(4));
                comentario.setUsuario(usuario);

                BeanArchivo archivo = new BeanArchivo();
                archivo.setIdarchivo(res.getInt(5));
                comentario.setArchivo(archivo);

            }

            res.close();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

        return comentario;

    }
    
    //insertar
    
     public void insert(BeanComentario comentario) {

        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;

        try {

            String query = "INSERT into comentario(contenido, idusuario, idcurso ) "
                    + "VALUES('?','?','?')";
                  
            pstmt = conn.prepareStatement(query);
            
            pstmt.setString(1, comentario.getContenido());
//            pstmt.setInt(2, comentario.getUsuario().setIdusuario());
//            pstmt.setString(3, usuario.getAlias());
//            pstmt.setString(4, usuario.getCorreo());
//            pstmt.setString(5, usuario.getClave());
            pstmt.setInt(6, 0);
            pstmt.setInt(7, 1);
            pstmt.setString(8, "");
            pstmt.setDate(9, null);

                    
            pstmt.executeUpdate();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

    }
     
     public ArrayList<BeanComentario> ComentariolistFile(int idarchivo) {

        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;
        ArrayList<BeanComentario> lista_comentarios = new ArrayList<BeanComentario>();


        try {

            String query = "SELECT c.idcomentario, c.contenido, c.fecha_creacion, c.idusuario, c.idarchivo "
                    + "FROM comentario c "
                    + "INNER JOIN usuario u ON c.idusuario = u.idusuario "
                    + "INNER JOIN archivo a ON c.idarchivo = a.idarchivo "
                    + "WHERE idarchivo = "+idarchivo;
//                    + "ORDER BY cu.nombre_curso";

            pstmt = conn.prepareStatement(query);
            res = pstmt.executeQuery();

            BeanComentario comentario;
            while (res.next()) {
                comentario = new BeanComentario();
                comentario.setIdcomentario(res.getInt(1));
                comentario.setContenido(res.getString(2));
                comentario.setFecha_creacion(res.getDate(3));

                BeanUsuario usuario = new BeanUsuario();
                usuario.setIdusuario(res.getInt(4));
                comentario.setUsuario(usuario);

                BeanArchivo archivo = new BeanArchivo();
                archivo.setIdarchivo(res.getInt(5));
                comentario.setArchivo(archivo);

                lista_comentarios.add(comentario);
            }

            res.close();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

        return lista_comentarios;

    }
     
    
    
}
